package demo.day06

// Kotlin Map
fun main() {
    // 第一种方式
    val map = mapOf("Kiki" to (1), "Qiqi" to (2))
    println(map)
    // 第二种方式
    val map2 = mapOf(Pair("Jimi", 10), Pair("JJ", 18))
    println(map2)
    // 第一种方式 跟 第二种方式是等价的
    println("<========读取值=======>")
    // 第一种 读取值
    println("<========第一种 读取值=======>")
    val value = map["Kiki"]
    println(value)
    // 找不到会返回null
    val value1 = map["Kiki1"]
    println(value1)
    // 第二种方式 getOrDefault
    println("<========第二种 读取值=======>")
    println(map.getOrDefault("Kiki", -1))
    println(map.getOrDefault("Kiki1", -1))
    // 第三种方式 getOrDefault
    println("<========第三种 读取值=======>")
    println(map.getOrElse("Kiki") { -1 })
    println(map.getOrElse("Kiki1") { -1 })
    println("<========第四种 读取值=====>")
    println(map.get("Kiki")) //  跟该map["Kiki"]方法等价
    println("<========第五种 读取值 不推荐 有崩溃风险=====>")
    println(map.getValue("Kiki"))
    println("<=========遍历 一=========>")
    map.forEach {
        println("key===>${it.key},value==>${it.value}")
    }
    println("<=========遍历 二=========>")
    map.forEach { (key, value) ->
        println("key===>${key},value==>${value}")
    }

    println("<=========遍历 三=========>")
    for (item in map){
        println("key===>${item.key},value==>${item.value}")
    }

}